_p_o_r_t expects the AAAALLLLppppoooorrrrtttt structure whose file descriptor you desire.
This structure is the returned value of an aaaallllOOOOppppeeeennnnPPPPoooorrrrtttt((((3333ddddmmmm)))) call.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
aaaallllGGGGeeeettttFFFFDDDD(((()))) returns a file descriptor that you can use to construct the
arguments to a sssseeeelllleeeecccctttt((((2222)))) or ppppoooollllllll((((2222)))) call.
These calls are used when you want to block a process until the device
fills or empties the audio port past a fillpoint (see the
aaaallllSSSSeeeettttFFFFiiiillllllllPPPPooooiiiinnnntttt((((3333ddddmmmm)))) manual page). At that time, sssseeeelllleeeecccctttt((((2222)))) and ppppoooollllllll((((2222))))
return, and your code can continue processing the audio ports. If the
device has already filled or emptied the audio port buffer past the
fillpoint when you make the call, control returns to your program
immediately.
When using sssseeeelllleeeecccctttt((((2222)))), an input port's file descriptor is used in a read
fdset and an output port's file descriptor is used in a write fdset.
When using ppppoooollllllll((((2222)))), an input port's file descriptor is used with the
POLLIN event flag and an output port's file descriptor is used with a
POLLOUT event flag.
Several AL functions implicitly change the current fillpoint value.
Therefore, aaaallllSSSSeeeettttFFFFiiiillllllllPPPPooooiiiinnnntttt((((3333ddddmmmm)))) must be called immediately before a
sssseeeelllleeeecccctttt((((2222)))) or ppppoooollllllll((((2222)))) call which uses an audio file descriptor.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
Upon successful completion, aaaallllGGGGeeeettttFFFFDDDD returns a valid file descriptor.
Otherwise, aaaallllGGGGeeeettttFFFFDDDD returns -1 and sets an error number which can be
retrieved with oooosssseeeerrrrrrrroooorrrr((((3333CCCC)))).
aaaallllGGGGeeeettttFFFFDDDD can fail for the following reason:
AAAALLLL____BBBBAAAADDDD____PPPPOOOORRRRTTTT _p_o_r_t is either invalid or null.